package ge.dados;

import ge.geral.Aluno;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Random;

public class Matricula {
	private String numeroDaMatricula;
	private static List<String> matriculasUtilizadas = new ArrayList<String>();

	public Matricula() {
		numeroDaMatricula = matriculaLivre();
		matriculasUtilizadas.add(numeroDaMatricula);
	}

	private String geraNumeroDeMatricula() {
		GregorianCalendar calendario = new GregorianCalendar();
		String matricula = "";
		Random matriculaRandomica = new Random();
		matricula = String.format("%s%s%s%s", calendario.get(Calendar.YEAR),
				calendario.get(Calendar.MONTH),
				calendario.get(Calendar.DAY_OF_MONTH),
				matriculaRandomica.nextInt(999));
		return matricula;
	}

	public String getNumeroDaMatricula() {
		return numeroDaMatricula;
	}

	public void setNumeroDaMatricula(String numeroDaMatricula) {
		this.numeroDaMatricula = numeroDaMatricula;
	}

	public List<String> getMatriculasUtilizadas() {
		return matriculasUtilizadas;
	}

	public void setMatriculasUtilizadas(List<String> matriculasUtilizadas) {
		this.matriculasUtilizadas = matriculasUtilizadas;
	}

	private String matriculaLivre() {
		String matriculaCandidata = geraNumeroDeMatricula();

		while (matriculasUtilizadas.contains(matriculaCandidata)) {
			matriculaCandidata = geraNumeroDeMatricula();
		}
		return matriculaCandidata;

	}
}
